2 POKE788,52:POKE792,134:POKE793,234:POKE65091,64:POKE7690,52
3 IFPEEK(56)<>30THENPOKE56,30:CLR
5 IFa=0THENa=1:LOAD"sprites",8,1
6 IFa=1THENa=2:SYS16256:LOAD"merge",8,1                       <== $3f80 Sprites:SpriteDataCopy
10 GOSUB2300:GOSUB900:FORi=1TO10:c0(i)=1:NEXT
20 n$(0)="one player game":n$(1)="two player game
30 m$(1)="skill one":m$(2)="skill two":m$(3)="skill three":m$(4)="skill four
32 POKE53280,9
34 SYS25984                                                   <== $6580 HIcode:ShowStartScreen
35 GOSUB400:POKE53281,1:PRINT"{clear}
40 FORi=1TO200:NEXT:PRINT" {red}{cm p*38}
50 PRINT" {reverse on}{space*6}please select skill level{space*7}"
60 PRINT" {black}{cm y*38}
70 FORj=0TO1:PRINTTAB(12)"{blue}"n$(j):PRINTTAB(12)"{black}{cm t*15}
80 FORk=1TO4:PRINTTAB(11)j*4+k"= "m$(k):PRINT:NEXT:NEXT
85 IFPEEK(56585)>=48THENPOKE38487,1:l$="1":GOSUB400:GOTO110
90 GETl$:IFl$=""THENPRINT"{home}{down*2} {red}{reverse on}{space*31}{home}":GOTO40
94 GOSUB400:IFl$="f"THENGOSUB2000:GOTO35
96 IFl$="b"THENGOSUB2600:PRINT"{home}":GOTO40
98 IFl$="t"THENs(0)=0:s(1)=0:POKE53281,0:PRINT"{clear}":GOSUB575:GOTO35
100 IFl$<"1"ORl$>"8"THEN90
105 POKE38487,0
110 l=VAL(l$):IFl>4THEN200
120 POKE38400,l:POKE38401,1:GOTO205
200 POKE38400,l-4:POKE38401,2
205 PRINT"{clear}"
210 SYS7708                                                   <== $1e1c LOcode:GameStart
212 PRINT"{clear}"
215 s=54272:FORi=0TO20:POKEs+i,0:NEXT
216 rt=PEEK(38408):IFPEEK(38487)=0THEN218
217 s(0)=0:s(1)=0:POKE53281,0:PRINT"{clear}":GOSUB1300:FORi=1TO10000:NEXT:GOTO219
218 IFrt<>2THENGOSUB500
219 GOSUB400:GOTO34
400 FORi=11TO8STEP-1:POKE56576+i,0:NEXT:RETURN
450 OPEN1,8,15:CLOSE1:RETURN
500 POKE53281,0:PRINT"{clear}":GOSUB800
520 GOSUB1100
530 FORii=0TO1:x=p(ii)
540 GOSUB1300
550 IFxTHENGOSUB700:GOSUB1500
560 c0(x)=12
570 NEXT
575 FORi=1TO10:c0(i)=1:NEXT
580 PRINT"{clear}":GOSUB1300
590 PRINT:PRINTTAB(7)"do you wish to record this
600 PRINTTAB(5)"top ten list on the disk (y/n)
610 FORi=1TO5000:GETa$:IFa$=""THENNEXT:RETURN
630 IFa$="y"THENGOSUB1700:RETURN
640 IFa$<>"n"THEN610
650 RETURN
700 PRINT:PRINTTAB(6)"{white}enter your initials player";ii+1
720 PRINT:PRINTTAB(8)"move stick left or right
730 PRINTTAB(10)"push button to enter
740 RETURN
800 FORi=0TO1
820 sl%=PEEK(38731+i):sh%=PEEK(38746+i)
830 s1%=sl%/16:s1%=sl%-6*s1%
840 s2%=sh%/16:s2%=sh%-6*s2%
850 s(i)=s2%*10000+s1%*100
860 NEXT
870 RETURN
900 OPEN2,8,2,"0:topten,s,r"
920 INPUT#2,m$:INPUT#2,n$:m$=m$+n$:c=1
930 GOSUB1800:CLOSE2
940 FORi=1TO10
950 i$="":FORj=1TO3:i$=i$+MID$(m$,c,1):c=c+1:NEXT
960 i$(i)=i$
970 n$=""
980 x$=MID$(m$,c,1):c=c+1:IFx$="/"THEN1000
990 n$=n$+x$:GOTO980
1000 tt(i)=VAL(n$)
1010 NEXTi
1020 x=FRE(0)
1030 RETURN
1100 FORi=1TO10:c0(i)=7:NEXT
1120 FORi=0TO1:p(i)=0
1130 IFs(i)<=tt(10)THEN1200
1140 p=10
1150 IFs(i)<=tt(p-1)THEN1170
1160 p=p-1:IFp>1THEN1150
1170 IFp=10THEN1190
1180 FORj=10TOp+1STEP-1:tt(j)=tt(j-1):c0(j)=c0(j-1):i$(j)=i$(j-1):NEXT
1190 tt(p)=s(i):c0(p)=1:p(i)=p:i$(p)="{.*3}"
1200 NEXT
1202 IFp(0)=0THENRETURN
1204 IFs(0)>=s(1)THENRETURN
1206 p(0)=p(0)+1:IFp(0)>10THENp(0)=0
1210 RETURN
1300 REM   sub to display scores
1310 PRINT"{home}
1320 PRINTTAB(17)"{white}scores
1330 PRINTTAB(4)"{cyan}player 1"TAB(17)"{yellow}{cm t*6}"TAB(28)"{cyan}player 2
1340 PRINTTAB(4)"{orange}{cm t*8}"TAB(28)"{cm t*8}{white}
1350 FORi=0TO1:PRINTTAB(24*i+11-LEN(STR$(s(i))));s(i);:NEXT:PRINT
1360 PRINTTAB(13)"{yellow}{cm @}{cm p}{cm d*10}{cm p}{cm @}
1370 PRINTTAB(11)"{red}{C*4}{yellow}{reverse on} {cyan}top{space*2}ten{yellow} {red}{reverse off}{C*4}
1380 PRINTTAB(13)"{yellow}{cm t}{cm y*12}{cm t}{white}
1390 FORi=1TO10:POKE646,c0(i)
1400 PRINTTAB(11-INT(i/10));i;TAB(16);i$(i);TAB(29-LEN(STR$(tt(i))));tt(i)
1410 NEXT
1420 RETURN
1500 as=1320+x*40:ac=as-1024+55296:i$=""
1520 FORi=0TO2
1530 FORj=0TO2:POKEac+j,15:NEXT
1540 POKEac+i,1:k=46
1550 FORl=1TO200
1560 POKEas+i,k+128:FORh=1TO50:NEXT
1570 n%=(256+NOTPEEK(56320))AND31
1580 IFn%AND16THEN1640
1590 IFn%AND4THENk=k-1:l=1:IFk=45THENk=26
1600 IFn%AND8THENk=k+1:l=1:IFk=27THENk=46
1610 IFk<1THENk=46
1620 IFk>46THENk=1
1630 NEXTl
1635 RETURN
1640 IFk=46THENi$=i$+CHR$(k):GOTO1660
1650 i$=i$+CHR$(64+k)
1660 FORh=1TO500:NEXT:NEXTi
1670 i$(x)=i$:RETURN
1700 GOSUB450:IFstTHENRETURN
1710 m$="":n$=""
1720 FORi=1TO5:m$=m$+i$(i)+STR$(tt(i))+"/":NEXT
1725 FORi=6TO10:n$=n$+i$(i)+STR$(tt(i))+"/":NEXT
1730 OPEN15,8,15,"s0:topten":CLOSE15
1740 OPEN2,8,2,"0:topten,s,w"
1750 PRINT#2,m$:PRINT#2,n$:GOSUB1800:CLOSE2
1760 RETURN
1800 OPEN15,8,15
1820 INPUT#15,a$,b$,c$,d$:CLOSE15
1830 IFVAL(a$)=0THENRETURN
1840 PRINT"{clear}{down*4}no."TAB(5)"message"TAB(24)"track"TAB(30)"sector"
1850 PRINTa$TAB(5)b$TAB(26)c$TAB(32)d$:PRINT:PRINT
1860 PRINT"unable to perform disk operation"
1870 PRINT:PRINT"hit <return> to continue"
1880 FORi=1TO10000:GETa$:IFa$<>""THENRETURN
1890 NEXT
1900 RETURN
2000 s=54272:FORi=0TO20:POKEs+i,0:NEXT
2020 POKEs+21,0:POKEs+23,247:POKEs+24,31
2030 PRINT"{clear}{down*3}changing filter cutoff settings{down*3}"
2040 PRINT"press <f1> to increase
2050 PRINT"{space*6}<f3> to decrease
2060 PRINT"{space*3}<space> to test sound
2070 PRINT"{space*7}</> to exit
2080 c=PEEK(7775+3):SYS7743:PRINT"{down*3}cutoff freq (hi)";c <== $1e3f LOcode:S_2061
2090 FORi=1TO10000:GETa$:IFa$=""THENNEXT:RETURN
2100 IFa$="{f1}"THENc=c+1:IFc>255THENc=255:GOTO2150
2110 IFa$="{f3}"THENc=c-1:IFc<0THENc=0:GOTO2150
2120 IFa$=" "THEN2150
2125 IFa$="{f1}"ORa$="{f3}"THEN2150
2130 IFa$="/"THEN2180
2140 GOTO2090
2150 POKEs+22,c
2160 SYS7754:PRINTTAB(16);"{up}{space*5}{left*5}";c           <== $1e4a LOcode:SL_2256
2170 GOTO2090
2180 s=c+16:IFs>255THENs=255
2190 POKE7775+2,s
2200 POKE7775+3,c:POKE7775+5,c:POKE7775+6,c
2210 s=c-16:IFs<0THENs=0
2220 POKE7775+4,s
2230 s=c-22:IFs<0THENs=0
2240 POKE7775+7,s
2250 PRINT"{clear}{down*3}do you wish to save these
2255 PRINT"settings to disk (y/n)
2260 FORi=1TO10000:GETa$:IFa$=""THENNEXT:RETURN
2270 IFa$="y"THENGOSUB2400
2280 RETURN
2300 OPEN2,8,2,"0:filter,s,r"
2320 FORi=0TO7:INPUT#2,c0(i):NEXT
2330 CLOSE2:GOSUB1800:IFVAL(a$)>0THEN2340
2335 FORi=0TO7:POKE7775+i,c0(i):NEXT
2340 RETURN
2400 GOSUB450:IFstTHENRETURN
2410 PRINT"{clear}{down*5}saving filter settings{down}"
2460 OPEN15,8,15,"s0:filter":CLOSE15
2470 OPEN2,8,2,"0:filter,s,w"
2480 FORi=0TO7:c=PEEK(7775+i):PRINT#2,c:NEXT
2490 GOSUB1800:CLOSE2
2500 RETURN
2600 c=PEEK(53280)AND15
2620 c=c+1:IFc>15THENc=1
